package lc_1072_按列翻转得到最大值等行数;

import java.util.HashMap;

public class Solution_字典树_哈希表 {
	
//	执行用时：68 ms, 在所有 Java 提交中击败了11.11%的用户
//
//	内存消耗：56.7 MB, 在所有 Java 提交中击败了12.04%的用户
//
//	通过测试用例：89 / 89


	class Node extends HashMap<Integer, Node> {
		int cnt = 0;
	}
	
	public int maxEqualRowsAfterFlips(int[][] matrix) {
		int n = matrix[0].length;
		int ans = 0;
		Node root = new Node();
		for (int[] row : matrix) {
			Node node = root;
			for (int i = 0; i < n; i++) {
				node = node.computeIfAbsent(row[i] ^ row[0],key -> new Node());
			}
			node.cnt++;
			ans = Math.max(node.cnt, ans);
		}
		return ans;
	}
}
